/*
 * Classe que modela o objeto Turma
 *
 */

package br.senac.sp.uniobjetos;

import java.util.Collection;
import java.util.Date;


public class Turma {
	private Curso curso;
	private Integer idTurma;
	private String descricao;
	private Date dataInicio;
	private Collection<Matricula> matriculas;

	public Turma() {
        this.curso = null;
        this.idTurma = -1;
        this.descricao = "";
        this.dataInicio = null;
	}
	
	public Turma (Curso curso, Integer idTurma, String descricao, Date dataInicio) {
		this.curso = curso;
		this.idTurma = idTurma;
		this.descricao = descricao;
		this.dataInicio = dataInicio;			 
	}
	
	public Curso getCurso() {
		return curso;
	}
	public void setCurso(Curso curso) {
		this.curso = curso;
	}

	public Integer getIdTurma() {
		return idTurma;
	}
	public void setIdTurma(Integer idTurma) {
		this.idTurma = idTurma;
	}
	
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	
	public Date getDataInicio() {
		return dataInicio;
	}
	public void setDataInicio(Date dataInicio) {
		this.dataInicio = dataInicio;
	}
	
	public Collection<Matricula> getMatriculas() {
		return matriculas;
	}
		
	public boolean equals(Object obj) {
		try {
			Turma turma = (Turma) obj;
			return idTurma.equals(turma.getIdTurma());
		} catch(Exception e) {
			return false;
		}
	}
	
	public boolean equals(Turma obj) {
        return this.curso.equals(obj.getCurso()) &&
                this.idTurma.equals(obj.getIdTurma()) &&
                this.descricao.equals(obj.getDescricao()) &&
                this.dataInicio.equals(obj.getDataInicio());
	}
}